#pragma once

struct Version
{
	int _value;

	Version( int val )
		: _value( val )
	{
	}

	Version( const Version& that )
		: _value( that._value )
	{
	}

	Version& operator=( const Version& that )
	{
		if ( this == &that )
		{
			return *this;
		}

		_value = that._value;
		return *this;
	}

	struct Compare;
};

struct Version::Compare
{
	bool operator()( const Version& a, const Version& b ) { return a._value < b._value; }
};